package br.ugf.projeto.util;

import jade.core.AID;

/**
 * <p>
 * </p>
 * 
 * @author Rodrigo Souza
 * @version 1.0 Created on Mar 28, 2008
 */
public class Proposta
	implements Comparable
{

	/**
	 * <p>
	 * </p>
	 * 
	 * @param produto
	 * @param sender
	 * @param preco
	 * @param qtde
	 */
	public Proposta( final String produto, final AID sender, final float preco, final int qtde )
	{
		setProduto( produto );
		setValor( preco );
		setQuantidade( qtde );
		setFornecedor( sender );
	}

	/**
	 * <p>
	 * </p>
	 * 
	 * @param o
	 * @return
	 * @see java.lang.Comparable#compareTo(java.lang.Object)
	 */
	public int compareTo( final Object o )
	{
		Proposta other = ( Proposta ) o;
		if ( this.getValor() > other.getValor() )
		{
			return 1;
		}
		if ( this.getValor() < other.getValor() )
		{
			return -1;
		}
		return 0;
	}

	/**
	 * <p>
	 * </p>
	 * 
	 * @param obj
	 * @return
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals( final Object obj )
	{
		return ( this.compareTo( obj ) == 0 );
	}

	/**
	 * <p>
	 * </p>
	 * 
	 * @return
	 */
	public AID getFornecedor()
	{
		return this.fornecedor;
	}

	/**
	 * <p>
	 * </p>
	 * 
	 * @return Returns the produto.
	 */
	public String getProduto()
	{
		return this.produto;
	}

	/**
	 * <p>
	 * </p>
	 * 
	 * @return Returns the quantidade.
	 */
	public double getQuantidade()
	{
		return this.quantidade;
	}

	/**
	 * <p>
	 * </p>
	 * 
	 * @return Returns the valor.
	 */
	public double getValor()
	{
		return this.valor;
	}

	/**
	 * <p>
	 * </p>
	 * 
	 * @param fornecedor
	 */
	public void setFornecedor( final AID fornecedor )
	{
		this.fornecedor = fornecedor;
	}

	/**
	 * <p>
	 * </p>
	 * 
	 * @param produto
	 *            The produto to set.
	 */
	public void setProduto( final String produto )
	{
		this.produto = produto;
	}

	/**
	 * <p>
	 * </p>
	 * 
	 * @param quantidade
	 *            The quantidade to set.
	 */
	public void setQuantidade( final double quantidade )
	{
		this.quantidade = quantidade;
	}

	/**
	 * <p>
	 * </p>
	 * 
	 * @param valor
	 *            The valor to set.
	 */
	public void setValor( final double valor )
	{
		this.valor = valor;
	}

	/**
	 * <p>
	 * Field <code>fornecedor</code>
	 * </p>
	 */
	private AID fornecedor;

	/**
	 * <p>
	 * Field <code>produto</code>
	 * </p>
	 */
	private String produto;

	/**
	 * <p>
	 * Field <code>quantidade</code>
	 * </p>
	 */
	private double quantidade;

	/**
	 * <p>
	 * Field <code>valor</code>
	 * </p>
	 */
	private double valor;

}
